package com.jason.imagesnode;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Random;
import java.util.Set;

/**
 * 
 * <li>类型名称：
 * <li>说明：公司自己编写的特有的字符串处理工具。
 * <li>创建人： 陈嗣洪
 * <li>创建日期：2008-10-14
 * <li>修改人： 
 * <li>修改日期：
 */
public class MyStringUtil {
	
	public static final Integer ASC = 0;
	public static final Integer DESC = 1;
	public static final String ASCKEY = "asc";
	public static final String DESCKEY = "desc";
	public static final String BYKEY = " by ";
	public static SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); 
	public static SimpleDateFormat ymdformat=new SimpleDateFormat("yyyyMMdd"); 
	public static SimpleDateFormat formatHour =new SimpleDateFormat("yyyy-MM-dd HH"); 
	public static SimpleDateFormat formatYearMonth=new SimpleDateFormat("yyyy-MM");
	private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	public static final String PURVIEWCODE = "purviewCode";
	
	private static final String CONFIG_FILE = "word.properties";
	private static Properties props = new Properties();// 属性
	@SuppressWarnings("rawtypes")
	private static Collection con = null; // 非法文字集合(从properties属性文件中读取出来)
	
	public static String getFileName(String flieName){
		Date date = new Date();
		String ymd = ymdformat.format(date);
		
		return ymd + flieName;
	}
	
	public static String getFileName(String flieName,String postfixName){
		Date date = new Date();
		String ymd = ymdformat.format(date);
		
		return ymd + flieName + postfixName;
	}
	
	//初始化类的时候加载敏感字符配置文件
	static{
		// 读取配置文件，根据配置文件创建配置信息	
		/*
		try {
			InputStream fileInput =MyStringUtil.class.getClassLoader().getResourceAsStream(CONFIG_FILE);
			// 加载配置文件
			props.load(fileInput);
			con=props.values();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.out.println("配置文件不存在，请仔细检查");
		} catch (IOException e) {
			e.printStackTrace();
			System.out.println("配置文件读取错误");
		}*/
	}
	/**
	 * 
	 * <li>方法名：createJspFileName
	 * <li>@param source
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：根据传入的字符串创建用下划线分隔的全小写字母组成的文件名
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2008-10-14
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String createJspFileName(String source){
		
		StringBuffer sb = new StringBuffer();		
		sb.append(Character.toLowerCase(source.charAt(0)));
		for(int i = 1; i < source.length(); ++i){
			if(Character.isUpperCase(source.charAt(i))){		
				sb.append('_');
			}
			sb.append(Character.toLowerCase(source.charAt(i)));
		}
		
		return sb.toString();
	}
	/**
	 * 
	 * <li>方法名：writeFilter
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：文字过滤器，对敏感文字进行过滤
	 * <li>创建人：陈港
	 * <li>创建日期：2013-8-19
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	@SuppressWarnings("rawtypes")
	public static boolean writeFilter(String string){
		boolean bl =false;
		if(string!=null&&string.length()>0){
			Iterator it = con.iterator(); // 迭代器 可以 把collection中的值一条一条的读出来
			if(con!=null){
				while (it.hasNext()) {
					 String value = (String) it.next(); // 取出该值
					 bl=string.contains(value);//如果包含敏感字符就返回true
					 if(bl==true) break;
				}
			}
		}
		return bl;
	}
	
	
	/**
	 * <li>方法名：Long2Int
	 * <li>@param ldata
	 * <li>@return
	 * <li>返回类型：int
	 * <li>说明：数据类型转换
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2008-10-21
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static int Long2Int(long ldata)
	{	
		return Integer.parseInt(String.valueOf(ldata));
	}
	
	/**
	 * <li>方法名：Int2Long
	 * <li>@param ldata
	 * <li>@return
	 * <li>返回类型：int
	 * <li>说明：数据类型转换
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2008-11-10
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static Long Int2Long(Integer intS)
	{	
		return Long.parseLong(intS.toString());
	}
	
	/**
	 * <li>方法名：Str2Long
	 * <li>@param str
	 * <li>@return
	 * <li>返回类型：Long
	 * <li>说明：数据类型转换
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2008-11-10
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static Long Str2Long(String str){
		return Long.parseLong(str.trim());
	}
	            
	
	public static String getDatetime(Date date){
		return sdf.format(date);
	}
	
	public static String getHour(Date date){
		return formatHour.format(date);
	}
	/**
	 * <li>方法名：string2BigDecimal
	 * <li>@param str
	 * <li>@return
	 * <li>返回类型：BigDecimal
	 * <li>说明：数据类型转换
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2008-10-21
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static BigDecimal String2BigDecimal(String str) 
	{
		BigDecimal bigDecimal = null;
		if (str != null && str.trim().length() != 0)
		{
			bigDecimal = new BigDecimal(str);
		}
		return bigDecimal;
	}
	
	/**
	 * <li>方法名：DateParse
	 * <li>@param str
	 * <li>@return
	 * <li>@throws Exception
	 * <li>返回类型：Date
	 * <li>说明：字符格式转换为日期类型
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2008-11-25
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static Date DateParse(String str){
		try{
			return format.parse(str);
		}catch(Exception e){
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * <li>方法名：date2str
	 * <li>@param date
	 * <li>@param formatString
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：数据类型转换
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2008-10-21
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String Date2Str(java.util.Date date, String formatString)
	{
		if(formatString!=null && !formatString.equals("")){
			format = new SimpleDateFormat(formatString);
		}
		return format.format(date);
	}
	
	/**
	 * <li>方法名：DateFormat
	 * <li>@param date
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：日期格式化为yyyy-MM-dd形式
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2008-11-25
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String DateFormat(Date date){
		return format.format(date);
	}
	
	/**
	 * <li>方法名：Str2Date
	 * <li>@param str
	 * <li>@return
	 * <li>返回类型：Date
	 * <li>说明：数据类型转换
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2008-10-21
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static Date Str2Date(String str){
		Date date = null;
		try{
			if(str != null && !str.trim().equals("") && isDate(str))
				date = format.parse(str);
		}catch(Exception e){
		}
		return date;
	}
	
	
	public static Date Str2Date(String str, String formatString){
		if(isBlank(formatString)){
			formatString = "yyyy-MM-dd";
		}
		SimpleDateFormat format=new SimpleDateFormat(formatString.split(";")[0]);
		System.out.println(formatString.split(";")[0]);
		Date date = null;
		try{
			if(!isBlank(str))
				date = format.parse(str);
		}catch(Exception e){
			e.printStackTrace();
			return new Date();			
		}
		return date;
	}
	
	
	/**
	 * <li>方法名：isDate
	 * <li>@param str
	 * <li>@return
	 * <li>返回类型：boolean
	 * <li>说明：判断是否是日期字符串
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2008-10-21
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static boolean isDate(String str){
		try{
			if(!isBlank(str))
				format.parse(str);
		}catch(Exception e){
			return false;
		}
		return true;
	}
	
	/**
	 * <li>方法名：Str2Int
	 * <li>@param str
	 * <li>@return
	 * <li>返回类型：int
	 * <li>说明：数据类型转换
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2008-10-21
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static int Str2Int(String str)
	{
		if (str == null || "".equals(str))
			return 0;
		return Integer.parseInt(str);
	}
	
	/**
	 * <li>方法名：StrFill
	 * <li>@param fillStr 用来补位的字符
	 * <li>@param oldStr 需要补位的字符串
	 * <li>@param length 补位后的总长度
	 * <li>@param place 补位位置:left or right
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：用指定的字符为需要补位的字符串补位
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2008-10-21
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String StrFill(String fillStr ,String oldStr ,int length ,String place)
	{
		StringBuffer sb =  new StringBuffer();
		if("right".equals(place)){
			sb.append(oldStr);
		}
		for(int i=0; i < (length - oldStr.length());i++){
			sb.append(fillStr);
		}
		if("left".equals(place)){
			sb.append(oldStr);
		}
		return sb.toString();
	}
	
	/**
	 * <li>方法名：isBlank
	 * <li>@param str
	 * <li>@return
	 * <li>返回类型：boolean
	 * <li>说明：判断字符串是否为空,为空就返回true,不为空返回false
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2008-11-26
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static boolean isBlank(String str){
		if(str==null){
			return true;
		}
		if(str.trim().length()<1){
			return true;
		}
		
		if(str.trim().equals("")){
			return true;
		}
		
		if(str.trim().toLowerCase().equals("null")){
			return true;
		}
		return false;
	}
	
	
	public static String orderStringClearOrderBy(String s1){
		if(s1 == null || s1.length() <= 0){
			return "";
		}
		
		int i = s1.toLowerCase().indexOf(BYKEY);

		String s = s1.substring(i+4,s1.length());
		return s;
	}
	
	/**
	 * 
	 * <li>方法名：getURL
	 * <li>@param entityName
	 * <li>@param menuId
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：根据指定的实体类名和方法名组合出url
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2009-9-15
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String getURL(String entityName,String methodName,String paramers,String url){
		StringBuilder sb = new StringBuilder();
		if(!isBlank(entityName)){
			sb.append(entityName).append("!").append(methodName);
		}else if(!isBlank(url)){
			sb.append(url);
		}
		
		if(!isBlank(paramers)){
			sb.append("?").append(paramers);
		}
		return sb.toString();
	}

	public static String toUTF8(String str){
		if(str == null){
			return null;
		}
		StringBuffer sb = new StringBuffer();
		for (int i=0; i< str.length(); i++) {
			char c = str.charAt(i);
			if(c >= 0 && c <= 256){
				sb.append(c);
			}
			else{
				try{
					byte[] b = Character.toString(c).getBytes("UTF-8");
					for (int j = 0; j < b.length; j++) {
						int k = b[j];
						if(k<0){
							k = k + 256;
						}
						sb.append("%" + Integer.toHexString(k).toUpperCase());
					}
				}
				catch (Exception e) {
					System.out.println(e);
				}
			}
		}
		
		return sb.toString();
	}
	
	public static String decodeUTF8(String s) {
		if (s == null)
			return "";

		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < s.length(); i++) {
			char c = s.charAt(i);
			switch (c) {
			case '+':
				sb.append(' ');
				break;
			case '%':
				try {
					// 将16进制的数转化为十进制
					sb.append((char) Integer.parseInt(
							s.substring(i + 1, i + 3), 16));
				} catch (NumberFormatException e) {
					throw new IllegalArgumentException();
				}
				i += 2;
				break;
			default:
				sb.append(c);
				break;
			}
		}

		String result = sb.toString();
		// 将UTF-8转换为GBK java+%E7%BC%96%E7%A8%8B
		// byte[] inputBytes = result.getBytes("8859_1"); //UTF8
		// return new String(inputBytes,"GB2312");
		try {
			result = new String(result.getBytes("8859_1"),"UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return result;
	}
	
	public static String addBrackets(String value){
		return new StringBuilder().append("[").append(value).append("]").toString();
	}
	
	/**
	 * 
	 * <li>方法名：toHqlInConditionWithName
	 * <li>@param alias
	 * <li>@param puriveCode
	 * <li>@param propertName
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：组织in条件sql串
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2010-2-2
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String toHqlInConditionWithName(String alias,String puriveCode,String propertName){
		String[] conditions = puriveCode.split(",");
		if(isBlank(alias)){
			alias = "";
		}else{
			alias += ".";
		}
		StringBuilder sb = new StringBuilder();
		sb.append(alias).append(propertName).append(" in ( ");
		for(String s: conditions){
			if(s != null){
				sb.append("'").append(s).append("',");
			}
		}
		sb.deleteCharAt(sb.length() -1 );
		sb.append(" )");
		return sb.toString();
	}
	
	/**
	 * 
	 * <li>方法名：toHqlOrConditionWithName
	 * <li>@param alias
	 * <li>@param puriveCode
	 * <li>@param propertName
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：组织or条件sql串
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2010-2-2
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String toHqlOrConditionWithName(String alias,String puriveCode,String propertName){
		boolean hasElement = false;
		if(isBlank(alias)){
			alias = "";
		}else{
			alias += ".";
		}
		String[] conditions = puriveCode.split(",");
		StringBuilder sb = new StringBuilder();	
		sb.append(" ( ");
		for(String s: conditions){
			if(!isBlank(s)){
				hasElement = true;
				sb.append(alias).append(propertName).append("= '").append(s).append("' or ");
			}
		}
		sb.delete(sb.length() - 3,sb.length() - 1 );
		sb.append(" ) ");
		
		if(hasElement){
			return sb.toString();
		}else{
			return null;
		}
	}
	/**
	 * 
	 * <li>方法名：toHqlOrConditionWithName2
	 * <li>@param alias
	 * <li>@param puriveCode
	 * <li>@param propertName
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：组装sql条件 in查询
	 * <li>创建人：陈港
	 * <li>创建日期：2013-9-4
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String toHqlOrConditionWithName2(String alias,String puriveCode,String propertName){
		boolean hasElement = false;
		if(isBlank(alias)){
			alias = "";
		}else{
			alias += ".";
		}
		String[] conditions = puriveCode.split(",");
		StringBuilder sb = new StringBuilder();	
		sb.append(alias).append(propertName).append(" in( '");
		for(String s: conditions){
			if(!isBlank(s)){
				hasElement = true;
				sb.append(s).append("','");
			}
		}
		sb.delete(sb.length() - 3,sb.length() - 1 );
		sb.append(" ) ");
		
		if(hasElement){
			return sb.toString();
		}else{
			return null;
		}
	}
	/**
	 * 
	 * <li>方法名：toHqlOrConditionWithName
	 * <li>@param alias
	 * <li>@param propertName
	 * <li>@param puriveCode
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2010-2-2
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String toHqlOrConditionWithName(String alias,String propertName,String ...puriveCode){
		boolean hasElement = false;
		if(isBlank(alias)){
			alias = "";
		}else{
			alias += ".";
		}
		StringBuilder sb = new StringBuilder();	
		sb.append(" ( ");
		for(String s: puriveCode){
			if(!isBlank(s)){
				hasElement = true;
				sb.append(alias).append(propertName).append("= '").append(s).append("' or ");
			}
		}
		sb.delete(sb.length() - 3,sb.length() - 1 );
		sb.append(" ) ");
		
		if(hasElement){
			return sb.toString();
		}else{
			return null;
		}
	}
	
	/**
	 * 
	 * <li>方法名：toHqlInCondition
	 * <li>@param alias
	 * <li>@param puriveCode
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2010-2-2
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String toHqlInCondition(String alias,String puriveCode){
		
		return toHqlInConditionWithName(alias,puriveCode,PURVIEWCODE);
	}
	
	/**
	 * 
	 * <li>方法名：toHqlOrCondition
	 * <li>@param alias
	 * <li>@param puriveCode
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2010-8-16
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String toHqlOrCondition(String alias,String puriveCode){
		
		return toHqlOrConditionWithName(alias,puriveCode,PURVIEWCODE);
	}
	
	/**
	 * 
	 * <li>方法名：likePurviewCode
	 * <li>@param alias
	 * <li>@param puriveCode
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2010-10-14
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String likePurviewCode(String alias,String puriveCode){
		if(puriveCode == null){
			return "";
		}
		if(isBlank(alias)){
			alias = "";
		}else{
			alias += ".";
		}
		
		StringBuilder sb = new StringBuilder();			
		sb.append(" ( ");
		sb.append(alias).append(PURVIEWCODE).append(" like '").append(puriveCode).append("%'");
		sb.append(" ) ");
		
		return sb.toString();
	}
	
	public static String likePurviewCode(String alias,String puriveCode,String columnName){
		if(puriveCode == null){
			return "";
		}
		if(isBlank(alias)){
			alias = "";
		}else{
			alias += ".";
		}	
		
		StringBuilder sb = new StringBuilder();			
		sb.append(" ( ");
		sb.append(alias).append(columnName).append(" like '").append(puriveCode).append("%'");
		sb.append(" ) ");
		
		return sb.toString();
	}
	
	public static String joinStrings(String...strs){
		if(strs!=null){
			StringBuilder sb = new StringBuilder();
			for(String str:strs){
				sb.append(str);
			}
			return sb.toString();
		}else{
			return "";
		}
	}
	
	public static String splitCasCode(String casCode){
		String result = "";
		if(isBlank(casCode)){
			return result;
		}
		for(int i =0; i <casCode.length()/3;++i){
			result += "," + casCode.substring(0, (i+1) * 3);
		}
		
		return result;
	}
	
	public static String splitTreeCasCode(String alias, String property, String casCode){
		StringBuilder result = new StringBuilder(" (");
		if(isBlank(casCode)){
			return "";
		}
		for(int i =0; i <casCode.length()/3;++i){
			if(i > 0){
				result.append(" or ");
			}
			result.append(alias).append(".").append(property).append(" = '").append(casCode.substring(0, (i+1)*3)).append("' ");
		}
		
		result.append(") ");
		
		return result.toString();
	}
	
	public static void main(String[] params){
		String str = "您还阿富汗123！";
		System.out.println(str);
		str = toUTF8(str);
		System.out.println(str);
		str = decodeUTF8(str);
		System.out.println(str);
		
//		String a ="akdslkafk,alsdlksfk,2dadaf,849949,84399,,,";
		
		String  l = "001001001";
		System.out.println(toHqlOrConditionWithName("d","id","123","456","kdkk"));
		
		//System.out.println(toHqlOrCondition(a,"purcode"));
	}
	
	
	
	public static String arrayToString(Collection<String> colls){
		return colls.toString().replace(",", "','").replace("[", "('").replace("]", "')").replace(" ", "");
	}
	
	/**
	 * 
	 * <li>方法名：getYearMonth
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：获取年月号码
	 * <li>创建人：陈嗣洪
	 * <li>创建日期：2012-3-30
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String getYearMonth(){
		Date d = new Date();
		return formatYearMonth.format(d);
	}
	/**
	 * <li>方法名：addDate
	 * <li>@param date
	 * <li>@param daySize
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：日期加减
	 * <li>创建人：袁军
	 * <li>创建日期：Jun 28, 2012
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String addDate(Date date,int daySize){
		Calendar cal = Calendar.getInstance();//使用默认时区和语言环境获得一个日历。  
		cal.setTime(date);
		cal.add(Calendar.DAY_OF_MONTH, daySize);//daySize正数，就向后加时间，负数向前取时间   
		//通过格式化输出日期    
		java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");    
		return format.format(cal.getTime());
	}
	/**
	 * <li>方法名：generateRandom
	 * <li>@param length 随机数长度
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：生成随机数
	 * <li>创建人：袁军
	 * <li>创建日期：Oct 10, 2012
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String generateRandom(int length){
		Random random = new Random();
		String x = Long.toString(Math.abs(random.nextLong()));
		String RandomNumber = x.substring(0,length);
		return RandomNumber;
	}
	
	public static String getFilePath(String uuid) {
		StringBuilder sb = new StringBuilder();
		sb.append("uploadfile/");
		
		
		sb.append(uuid.substring(0, 4));
		sb.append("/");
		sb.append(uuid.substring(4, 6));
		sb.append("/");
		sb.append(uuid.substring(6, 8));
		
		return sb.toString();
	}
	
	/**
	 * 
	 * <li>方法名：getStrAsJSon
	 * <li>@param status
	 * <li>@param msg
	 * <li>@param resultJson
	 * <li>@return
	 * <li>返回类型：String
	 * <li>说明：填充参数，返回json字符串
	 * <li>创建人：李伟
	 * <li>创建日期：2013-8-6
	 * <li>修改人： 
	 * <li>修改日期：
	 */
	public static String getStrAsJSon(int status,String msg,String resultJson){
//		{status:1,msg:'',result:{}}
		StringBuffer sbuffer = new StringBuffer();
		sbuffer.append("{");
		sbuffer.append("status:"+status);
		
		if(!(msg == null || "".equals(msg))){
			sbuffer.append(",msg:\""+msg+"\"");
		}
		
		if(!(resultJson == null || "".equals(resultJson))){
			sbuffer.append(",result:"+resultJson );
		}
		
		sbuffer.append("}");
	
		
		return sbuffer.toString();
	}
	
	public static boolean isNull(String str){
		return str == null ? true : false ;
	}
	
	public static boolean isEmpty(String str){
		String s = str.trim();
		return "".equals(s) ? true : false ;
	}
	
	public static boolean isNullOrEmpty(String str){
		return isNull(str) || isEmpty(str);
	}
	
	public static boolean isUndefinedStr(String str){
		return "undefined".equals(str) ? true : false;
	}
}
